$(function(){
	/** 用来存储所有父菜单选项* */
	var allFmenu;
	$.post("/menu/getallfmenu",
			function(result){
			var data = eval("("+result+")");
			allFmenu = data;
		if(data.flag==true){
			$("#search_fmenu").empty();
			$("#add_fMenu").empty();
			var option = "<option value='0'>所有菜单</option>";
			var options = "<option value='0'>主菜单</option>";
			for(var i = 0 ; i < data.res.length; i++){
				option += "<option value='"+data.res[i].id+"'>"+data.res[i].menuName+"</option>";
				options += "<option value='"+data.res[i].id+"'>"+data.res[i].menuName+"</option>";
			}
			$("#search_fmenu").append(option);
			$("#add_fMenu").append(options);
			$("#edit_fMenu").append(options);
		}else{
		}
	});
	
	// 根据窗口调整表格高度
    $(window).resize(function() {
        $('#mytab').bootstrapTable('resetView', {
            height: tableHeight()
        })
    })
    // 生成菜单数据数据
    $('#mytab').bootstrapTable({
    	method: 'post',
    	contentType: "application/x-www-form-urlencoded",
    	url:"/menu/getallmenu",
    	height:tableHeight(),// 高度调整
    	toolbar: '#toolbar',
    	striped: true, // 是否显示行间隔色
    	dataField: "res",
    	pagination:true,// 是否分页
    	queryParamsType:'limit',
    	queryParams:queryParams,
    	sidePagination:'server',
    	pageSize:10,// 单页记录数
    	pageList:[5,10,20,30],// 分页步进值
    	showRefresh:true,// 刷新按钮
    	showColumns:true,
    	clickToSelect: true,// 是否启用点击选中行
    	toolbarAlign:'right',
    	buttonsAlign:'right',// 按钮对齐方式
    	toolbar:'#toolbar',// 指定工作栏
    	columns:[
        	{
        		title:'全选',
        		field:'select',
        		checkbox:true,
        		width:25,
        		align:'center',
        		valign:'middle'
        	},
        	{
        		title:'ID',
        		field:'id',
        		visible:false
        	},
        	{
        		title:'菜单名称',
        		field:'menuName',
        		sortable:true
        	},
        	{
        		title:'菜单路径',
        		field:'menuPath',
        		sortable:true
        	},
        	{
        		title:'菜单icon',
        		field:'menuFa',
        		formatter:iconFormatter
        	},
        	{
        		title:'权限列表',
        		field:'role',
        		formatter:roleFormatter
        	},
        	{
        		title:'菜单排序',
        		field:'sortNum',
        		sortable:true
        	}
    	],
    	locale:'zh-CN',// 中文支持,
    })
    /*
	 * 用户管理首页事件
	 */


	// 请求成功后生成增加用户页面表单内容
    $('#addForm').bootstrapValidator({
		       	feedbackIcons: {
		               valid: 'glyphicon glyphicon-ok',
		               invalid: 'glyphicon glyphicon-remove',
		               validating: 'glyphicon glyphicon-refresh'
		           },
		           fields: {
		        	   menuName: {
		                   validators: {
		                       notEmpty: {
		                           message: '菜单名称不能为空'
		                       }
		                   }
		               },
		               role: {
	                        validators: {
	                            notEmpty: {
	                                message: '角色至少选择一种'
	                            }
	                        }
	                    },
	                    sore: {
		                   validators: {
		                	   digits : {
									message : '该选项只能填写数字'
							   }
		                   }
		               }
		           }
		     });
		  $('#editForm').bootstrapValidator({
		       	feedbackIcons: {
		               valid: 'glyphicon glyphicon-ok',
		               invalid: 'glyphicon glyphicon-remove',
		               validating: 'glyphicon glyphicon-refresh'
		           },
		           fields: {
		        	   ID:{
		        		   validators:{
		        			   notEmpty: {
		                           message: 'ID不能为空'
		                       } 
		        		   }
		        	   },
		        	   menuName: {
		                   validators: {
		                       notEmpty: {
		                           message: '菜单名称不能为空'
		                       }
		                   }
		               },
		               'role[]': {
	                        validators: {
	                            notEmpty: {
	                                message: '角色至少选择一种'
	                            }
	                        }
	                    },
	                    sortNum: {
			                   validators: {
			                       notEmpty: {
			                           message: '排序号不能为空'
			                       }
			                   }
			               }
		           }
		       });
    /** 角色格式化* */
   function iconFormatter(value,row,index){
	   return "<i class='"+value+"'></i>";
    }
   /** 权限格式化* */
   function roleFormatter(value,row,index){
	   var tag = "";
	   for(var i = 0;i < value.length;i++){
		   switch(value[i].id){
		   case 1:
			   tag+= "<span class='label label-danger label-mini'>开发者</span>";
			   break;
		   case 2:
			   tag+= "<span class='label label-info label-mini'>管理员</span>";
			   break;
		   case 3:
			   tag+= "<span class='label label-warning label-mini'>普通用户</span>";
			   break;
		   case 4:
			   tag+= "<span class='label label-success label-mini'>移动用户</span>";
			   break;
		   default:
			   tag+= "数据错误";
		   	   break;
		   }
	   }
	   return tag;
   }
   
   
    // 请求服务数据时所传参数
    function queryParams(params){
    	return{
    		pageSize: params.limit,
    		pageIndex:params.pageNumber,
    		name:$('#search_name').val(),
    		path:$('#search_path').val(),
    		fid:$('#search_fmenu').val()
    	}
    }
    // 查询按钮事件
    $('#search_btn').click(function(){
    	$('#mytab').bootstrapTable('refresh', {url: '/menu/getallmenu'});
    })
    // 删除按钮与修改按钮的出现与消失
    $('.bootstrap-table').change(function(){
    	var dataArr=$('#mytab .selected');
    	if(dataArr.length==1){
    		$('#btn_edit').css('display','block').removeClass('fadeOutRight').addClass('animated fadeInRight');
    	}else{
    		$('#btn_edit').addClass('fadeOutRight');
    		setTimeout(function(){
    			$('#btn_edit').css('display','none');
    		},400);	
    	}
    	if(dataArr.length>=1){
    		$('#btn_delete').css('display','block').removeClass('fadeOutRight').addClass('animated fadeInRight');
    	}else{
    		$('#btn_delete').addClass('fadeOutRight');
    		setTimeout(function(){
    			$('#btn_delete').css('display','none');
    		},400);	
    	}
    });
    
    // 增加按钮事件
    $('#btn_add').click(function(){
		$('.tableBody').addClass('animated slideOutLeft');
		setTimeout(function(){
			$('.tableBody').removeClass('animated slideOutLeft').css('display','none');
		},500)
		$('.addBody').css('display','block');
		$('.addBody').addClass('animated slideInRight');
    })
    
    // 修改按钮事件
    $('#btn_edit').click(function(){
    	var dataArr=$('#mytab').bootstrapTable('getSelections');
    	$('.tableBody').addClass('animated slideOutLeft');
		setTimeout(function(){
			$('.tableBody').removeClass('animated slideOutLeft').css('display','none');
		},500)

		
		$('.changeBody').css('display','block');
		$('.changeBody').addClass('animated slideInRight');
		$('#edit_ID').val(dataArr[0].id);
		$('#edit_menuName').val(dataArr[0].menuName);
		$('#edit_menuPath').val(dataArr[0].menuPath);
		$('#edit_menuIcon').val(dataArr[0].menuFa);
		$("#edit_fMenu").val(dataArr[0].fid);
		$('#edit_menuSore').val(dataArr[0].sortNum);
		var roles = dataArr[0].role;
		for (var i = 0; i < roles.length; i++) {
			$('#editCheckbox'+roles[i].id).attr("checked","true");
		}
    })
    /*
	 * 用户管理修改用户页面所有事件
	 */
    
        //增加页面表单验证   
    // Validate the form manually
    $('#add_saveBtn').click(function() {
       //点击保存时触发表单验证
       $('#addForm').bootstrapValidator('validate');
       //如果表单验证正确，则请求后台添加用户
       if($("#addForm").data('bootstrapValidator').isValid()){
    	   var _info = $('#addForm').serialize();
    	  $.post(
				"/menu/savemenu",
				$('#addForm').serialize(),
				function(reslut){
					var data = eval("("+reslut+")");
					//后台返回添加成功
					if(data.flag==true){
						$('.addBody').addClass('animated slideOutLeft');
				    	setTimeout(function(){
							$('.addBody').removeClass('animated slideOutLeft').css('display','none');
						},500);
				    	$('.tableBody').css('display','block').addClass('animated slideInRight');
				    	$('#mytab').bootstrapTable('refresh', {url: '/menu/getallmenu'});
				    	$('#addForm').data('bootstrapValidator').resetForm(true);
				    	//隐藏修改与删除按钮
						$('#btn_delete').css('display','none');
						$('#btn_edit').css('display','none');
					}
					//否则
					else{
					}
				}
			) 
       }
    });
       // 增加页面返回按钮事件
    $('#add_backBtn').click(function() {
    	$('.addBody').addClass('animated slideOutLeft');
    	setTimeout(function(){
			$('.addBody').removeClass('animated slideOutLeft').css('display','none');
		},500)
    	$('.tableBody').css('display','block').addClass('animated slideInRight');  
    	$('#addForm').data('bootstrapValidator').resetForm(true);
    });
    // 修改页面回退按钮事件
    $('#edit_backBtn').click(function(){
    	$('.changeBody').addClass('animated slideOutLeft');
    	setTimeout(function(){
			$('.changeBody').removeClass('animated slideOutLeft').css('display','none');
		},500)
    	$('.tableBody').css('display','block').addClass('animated slideInRight'); 
    	$('#editForm').data('bootstrapValidator').resetForm(true);
    })
    // 修改页面保存按钮事件
    $('#edit_saveBtn').click(function(){
    	debugger;
    	var editFrom = $('#editForm');
    	editFrom.bootstrapValidator('validate');
    	if(editFrom.data('bootstrapValidator').isValid()){
    		 $.post("/menu/updatemenu",
				$('#editForm').serialize(),
				function(result){
    			 	var data = eval("("+result+")");
					if(data.flag==true){
						// 隐藏修改与删除按钮
						$('#btn_delete').css('display','none');
						$('#btn_edit').css('display','none');
						// 回退到人员管理主页
						$('.changeBody').addClass('animated slideOutLeft');
				    	setTimeout(function(){
							$('.changeBody').removeClass('animated slideOutLeft').css('display','none');
						},500)
				    	$('.tableBody').css('display','block').addClass('animated slideInRight'); 
				    	// 刷新人员管理主页
				    	$('#mytab').bootstrapTable('refresh', {url: '/menu/getallmenu'});
				    	// 修改页面表单重置
				    	$('#editForm').data('bootstrapValidator').resetForm(true);
					}else{
					}
			    }
    		 ) 
    	}
    })
    // 删除事件按钮
    $('#btn_delete').click(function(){
    	var dataArr=$('#mytab').bootstrapTable('getSelections');
    	$('.popup_de .show_msg').text('确定要删除该菜单吗?');
    	$('.popup_de').addClass('bbox');
    	$('.popup_de .btn_submit').one('click',function(){
    		var ID=[];
        	for(var i=0;i<dataArr.length;i++){
        		ID[i]=dataArr[i].id;
        	}
        	$.post("/menu/delmenu",
        			{ids : ID},
        			function(result){
        				debugger;
        			var data = eval("("+result+")");
        		if(data.flag==true){
        			$('.popup_de .show_msg').text('删除成功！');
					$('.popup_de .btn_cancel').css('display','none');
					$('.popup_de').addClass('bbox');
					$('.popup_de .btn_submit').one('click',function(){
						$('.popup_de').removeClass('bbox');
					})
        			$('#mytab').bootstrapTable('refresh', {url: '/menu/getallmenu'});
        		}else{
        		}
        	});
    	})
    })
    // 弹出框取消按钮事件
   　　$('.popup_de .btn_cancel').click(function(){
	   $('.popup_de').removeClass('bbox');
   　　})
    // 弹出框关闭按钮事件
     $('.popup_de .popup_close').click(function(){
	   $('.popup_de').removeClass('bbox');
   　　})
      
})
function tableHeight() {
    return $(window).height() - 250;
} 

function format(date,str){
    var mat={};
    mat.M=date.month+1;// 月份记得加1
    mat.H=date.hours;
    mat.s=date.seconds;
    mat.m=date.minutes;
    mat.Y=date.year+1900;
    mat.D=date.date;
    mat.d=date.day;// 星期几
    mat.d=check(mat.d);
    mat.H=check(mat.H);
    mat.M=check(mat.M);
    mat.D=check(mat.D);
    mat.s=check(mat.s);
    mat.m=check(mat.m);
    if(str.indexOf(":")>-1){
　　　　　mat.Y=mat.Y.toString().substr(2,2);
　　　　 return mat.Y+"/"+mat.M+"/"+mat.D+" "+mat.H+":"+mat.m+":"+mat.s;
    }
    if(str.indexOf("/")>-1){
        return mat.Y+"/"+mat.M+"/"+mat.D+" "+mat.H+"/"+mat.m+"/"+mat.s;
    }
    if(str.indexOf("-")>-1){
        return mat.Y+"-"+mat.M+"-"+mat.D+" "+mat.H+"-"+mat.m+"-"+mat.s;
    }
}
// 检查是不是两位数字，不足补全
function check(str){
    str=str.toString();
    if(str.length<2){
        str='0'+ str;
    }
    return str;
}